1. Technical Field
This disclosure relates generally to software installation in a data processing system and more specifically to centrally controlled proximity based software installation in the data processing system.
2. Description of the Related Art
A typical large enterprise has a need for centralized management involving installation and update of various software packages deployed on hundreds and perhaps thousands of devices distributed in various locations across the enterprise. Attempted solutions exist to address this need. All of these solutions typically either (a) cause network capacity to be exceeded and overload certain central machines, while enabling large scale use cases or (b) introduce increasing management overhead to manage multiple mirror machines which are clones of central machines.
The problems typically occur because enterprise software packages tend to be large. For example, a cumulative fix-pack may easily pass a 500-megabyte mark. This means that when such maintenance is rolled out to hundreds of machines, the volume of data that crosses the enterprise network is very large. The large volume causes congestion and a resulting reduction in throughput for other network traffic or disruption of service due to bottlenecks or failure.
Typical known solutions include performing installation or update operations in batches. However this approach might result in hours or days to update a large set of targets, especially when the targets are located in different geographies. Another approach uses mirror sites, defining multiple pre-defined repositories in various geographies to spread the burden across different locations. While this solution can be somewhat more scalable, mirroring also typically has a number of potentially serious disadvantages. In one example, increasing numbers of mirror locations means more updates because as a new version of software becomes available, all mirror locations have to be updated first, which might take substantial time and effort in addition to the effort required for individual machines. In a related example, mirror site locations are predefined, leading to similar scalability issue due to limitations of the number of sites when many machines in a specific geography try to access a specific mirror site.
In another example, use of a tree-based topology causes updates to propagate from a parent node to a child node of the structure. While this approach makes an installation process more distributed, significant overhead is created through imposing parent/child relationship definitions for the installation nodes and maintaining relationships current.
A further example maintains predefined sets of nodes to which an update is sent. The predefined sets of nodes then cause the updates to be sent to another predefined sets of nodes. However the predefined sets of nodes, for example, lists of nodes, are static and significant management overhead is typically required to maintain the accuracy and relevance of the lists.
Yet another example solution identifies a master device, which governs the installation of an update or package on multiple slave devices. While this approach allows for central control of the installation and update process, however the master and slaves relationships do not address the impact on network capacity when the master initiates broadcasting of a software package to a large number of slaves.